﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogic;
using System.Data;
using System.IO;


namespace Interface.Houses
{
    public partial class AddHouse : System.Web.UI.Page
    {
        DataConnection dc = new DataConnection();
        DataValid dv = new DataValid();
        protected void Page_Load(object sender, EventArgs e)
        {
            ////string username = Session["login"].ToString();
            //string username = "huy";
            //lbUser.Text = username;
            if (Session["OwnerSession"] == null)
            {
                Response.Redirect("~/Home.aspx");
            }
            lbUser.Text = Session["OwnerSession"].ToString();
            if (Page.IsPostBack == false)
            {
                loadCity();                
                loadCategory();

            }
        }


        protected void loadCity()
        {
            string strsql = "Select Name from City";
            DataTable dt = dc.getData(strsql);
            ddCity.Items.Add(string.Empty);
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    string CityName = row["Name"].ToString();

                    ddCity.Items.Add(CityName);
                }
            }

        }

        protected void loadDis(string _idCity)
        {

            string strsql = "Select Name from District where idCity = '" + _idCity + "'";
            DataTable dt = dc.getData(strsql);
            ddDistrict.Items.Add(string.Empty);
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    string _DisName = row["Name"].ToString();

                    ddDistrict.Items.Add(_DisName);
                }
            }
            

        }

        protected void loadCategory()
        {
            string strsql = "Select Name from Category";
            DataTable dt = dc.getData(strsql);
            ddCategory.Items.Add(string.Empty);
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    string CategoryName = row["Name"].ToString();

                    ddCategory.Items.Add(CategoryName);
                }
            }

        }

        protected void ddCity_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddDistrict.Items.Clear();
                string _cityName = ddCity.Text;
                string sqlIdCity = "Select IdCity from City where Name = N'" + _cityName + "'";
                int _cityId = dc.getNumberValue(sqlIdCity);
                loadDis(_cityId.ToString());
            
            
        }

        protected void btnReset_Click(object sender, EventArgs e)
        {
            txtWard.Text = null;
            txtStreet.Text = null;
            txtNOR.Text = null;
            txtNORA.Text = null;
            
            txtDiscription.Text = null;
            txtLong.Text = null;
            txtLat.Text = null;
            txtPhone.Text = null;
        }



        protected void btAdd_Click(object sender, EventArgs e)
        {
            string owner = string.Empty;
            if (Session["OwnerSession"] != null)
            {
                owner = Session["OwnerSession"].ToString();
            }
            
            if (ddCity.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải chọn thành phố";
                return;
            }

            if (ddDistrict.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải chọn 1 quận";
                return;
            }

            if (txtWard.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải nhập tên phường";
                return;
            }
            if (txtStreet.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải nhập tên đường";
                return;
            }

            if (ddCategory.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải chọn loại nhà trọ";
                return;
            }

            

            //    string _Owner = dv.checktext(txtOwner.Text);
            

            string sqlIdUser = "Select UserId from Users where Username = N'" + owner + "'";
            int _idUser = dc.getNumberValue(sqlIdUser);

            int _cityId = 0;
                string _Cityname = ddCity.Text;
                if (_Cityname != string.Empty)
                {
                    string sqlCityId = "Select IdCity from City where Name = N'" + ddCity.Text + "'";
                    _cityId = dc.getNumberValue(sqlCityId);

                }

            string _District = ddDistrict.Text;
            int _disId = 0;
                if (_District != string.Empty)
                {
                    string sqlDis = "Select IdDistrict from District where Name = N'" + ddDistrict.Text + "'";
                    _disId = dc.getNumberValue(sqlDis);
                }

            string _Ward = txtWard.Text;
            
            string _Street = txtStreet.Text;
                
            string _Category = ddCategory.Text;


            int _NumOfRom = 0;
            if (txtNOR.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải nhập  vào số phòng của nhà trọ";
                return;

            }
            else
            {
                _NumOfRom = Convert.ToInt32(txtNOR.Text);
            }


            int _NumOfRomA=0;
            if (txtNORA.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải nhập vào số phòng còn trống của nhà trọ";
                return;
            }
            else
            {

                _NumOfRomA = Convert.ToInt32(txtNORA.Text);
            }

            if (_NumOfRom < _NumOfRomA)
            {
                lblMs.Text = "Số phòng còn trống phải nhỏ hơn số phòng của nhà trọ";
                return;
            }
           
            
            HttpPostedFile postfile = upload.PostedFile;
            string fileEx = Path.GetExtension(postfile.FileName);
            string filename = Path.GetFileName(postfile.FileName);
            if (filename != string.Empty)
            {

                if (fileEx == ".jpg" || fileEx == ".gif" || fileEx == ".png" || fileEx == ".bmp")
                    {
                        postfile.SaveAs(Server.MapPath("~/Images/Houses/" + filename));
                    }
                else
                    {
                        filename = null;
                        //lblMs.Text = "Bạn phải nhập hình định dạng .jpg, .gif, .png hay .bmp";
                        //return;
                    }
                
            }

            int _cateId = 0;
            if (_Category != string.Empty)
                {
                    string sqlCateId = "Select IdCategory from Category where Name = N'" + ddCategory.Text + "'";
                    _cateId = dc.getNumberValue(sqlCateId);

                }
           string _discription = txtDiscription.Text;
           if(_discription == string.Empty)
               {
                   _discription= null;

               }
                


           string _Contact = txtPhone.Text;
           if (_Contact == string.Empty)
               {
                   lblMs.Text = "Bạn phải nhập vào số điện thoại";
                   return;
               }

           //decimal _textLat = Convert.ToDecimal(txtLat.Text);
           bool checkedLat = dv.Isnumeric(txtLat.Text);
           string _lat = null;
           if (checkedLat == true)
           {
               _lat = Convert.ToString(txtLat.Text);
           }

           else
           {
               lblMs.Text = "Bạn phải nhập vào số";
               return;
           }

           bool checkedLong = dv.Isnumeric(txtLong.Text);
           string _long = null;
           if (checkedLat == true)
           {
               _long = Convert.ToString(txtLong.Text);
           }

           else
           {
               lblMs.Text = "Bạn phải nhập vào số";
               return;
           }
              
                
           
          string insertQuery = "insert into BoardingHouse values ('" +_idUser+"', N'" + _Street + "',N'" + _Ward + "','" + _disId + "', '" + _cityId + "','" + _cateId + "','"+ _NumOfRom+"','"+ _NumOfRomA +"','"+ filename +"',N'"+ _discription +"','"+ null +"','" + txtPhone.Text + "','"+ _lat+"', '"+ _long+"')";
          
                
               
            
          try
              {
                    dc.ExecNonQuery(insertQuery);
                    Response.Redirect("BoardingHouse.aspx");
              }
          catch(Exception ex)
              {
                  lblMs.Text= ex.Message;
            
              }


      }
    }


  }



        

    
        
